<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>tr-143-1-0-2.xml</title>
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    div.columns{display: flex; gap: min(4vw, 1.5em);}
    div.column{flex: auto; overflow-x: auto;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    /* The extra [class] is a hack that increases specificity enough to
       override a similar rule in reveal.js */
    ul.task-list[class]{list-style: none;}
    ul.task-list li input[type="checkbox"] {
      font-size: inherit;
      width: 0.8em;
      margin: 0 0.8em 0.2em -1.6em;
      vertical-align: middle;
    }
  </style>
  <!-- Sidebar ToC styles -->

  <style>
  @media screen and (min-width: 60em) {
      body {
          display: flex;
          align-items: stretch;
          margin: 0px;
          /* XXX this is experimental; may need to insert zero-width spaces */
          overflow-wrap: break-word;
      }

      #main {
          flex: 4 2 auto;
          overflow: auto;
          order: 2;
          padding: 5px;
      }

      #TOC {
          position: sticky;
          order: 1;
          flex: 1 0 auto;
          margin: 0 0;
          top: 0px;
          left: 0px;
          height: 100vh;
          line-height: 1.4;
          resize: horizontal;
          font-size: larger;
          overflow: auto;
          border-right: 1px solid #73AD21;
          padding: 5px;
          max-width: 20%;
      }

      #TOC ul {
          margin: 0.35em 0;
          padding: 0 0 0 1em;
          list-style-type: none;
      }

      #TOC ul ul {
          margin: 0.25em 0;
      }

      #TOC ul ul ul {
          margin: 0.15em 0;
      }

      #TOC {
          z-index: 1;
      }
  }
  </style>

  <!-- ToC expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var expandables = document.getElementsByClassName('expandable');
      for (i = 0; i < expandables.length; i++) {
          expandables[i].addEventListener('click', function() {
              this.parentElement.querySelector('.collapsed').classList
                  .toggle('expanded');
              this.classList.toggle('collapsible');
          });
      }
  });
  </script>

  <!-- ToC expansion and contraction styles -->

  <style>
  .expandable {
      cursor: pointer;
      user-select: none;
      display: list-item;
      /* Circled Plus + non-breakable space */
      list-style-type: "\2295\A0";
  }

  .collapsible {
      /* Circled Minus + non-breakable space */
      list-style-type: "\2296\A0";
  }

  .collapsed {
      display: none;
  }

  .expanded {
      display: grid; /* needed by the 'order' property */
  }
  </style>

  <!-- ToC sorting script (works for object names and profile headers) -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      /* 'A.B.' -> {prefix: '', name: 'A.B.', 'version': ''}
         '_Baseline:1' -> {prefix: '_', name: 'Baseline', version: '1'} */
      var regex = /^(?<prefix>_?)(?<name>[^:]*)(:?)(?<version>\d*)/;
      var lists = document.getElementsByClassName('ordered');
      for (var i = 0; i < lists.length; i++) {
          var items = lists[i].children;
          var temp = [];
          for (var j = 0; j < items.length; j++) {
              /* this assumes that the first child contains the text */
              temp.push([j, items[j].children[0].innerText]);
          }
          temp.sort((a, b) => {
              /* 'Notation' (which is used for profiles) must come first */
              var a1 = a[1] == 'Notation' ? ' Notation' : a[1];
              var b1 = b[1] == 'Notation' ? ' Notation' : b[1];
              var a1_groups = a1.match(regex).groups;
              var b1_groups = b1.match(regex).groups;
              var a1_tuple =  [
                  a1_groups.name.toLowerCase() + (a1_groups.prefix || '~'),
                  parseInt(a1_groups.version || 0)];
              var b1_tuple =  [
                  b1_groups.name.toLowerCase() + (b1_groups.prefix || '~'),
                  parseInt(b1_groups.version || 0)];
              return a1_tuple < b1_tuple ? -1 : a1_tuple > b1_tuple ? 1 : 0;
          });
          temp.forEach((order_text, j) => {
              var k = order_text[0];
              items[k].style.order = j;
          });
      }
  });
  </script>

  <!-- Automatic title generation (from anchor ids) script
       XXX only works for non-deprecated object parameters and doesn't
           show correct full paths; should get rid of it? -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var pars = document.getElementsByClassName('parameter');
      var regex = /\w\.\w+:[0-9.]+\./;
      for (var i = 0; i < pars.length; i++) {
          if (pars[i].firstElementChild && pars[i].firstElementChild.
                  firstElementChild) {
              pars[i].firstElementChild.title =
                  pars[i].firstElementChild.firstElementChild.id.
                  replace(regex, '');
          }
      }
  });
  </script>

  <!-- Automatic on-hover link generation script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var hoverlink = null;

      var anchors = document.querySelectorAll('td span[id]:not(:empty)');
      for (var i = 0; i < anchors.length; i++) {
        var cell = anchors[i].parentElement;

        cell.addEventListener('mouseenter', event => {
          var target = event.target;
          var anchor = target.querySelector('span[id]:not(:empty)');

          /* derive the item type from the row's first class item,
           * which might have a leading 'deprecated-' etc. and
           * might also contain additional hyphens */
          var itemType = (target.parentElement.classList.item(0) || 'item').
              replace(/^\w+-/, '').replace(/-/g, ' ');

          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }

          hoverlink = document.createElement('a');
          hoverlink.href = '#' + anchor.id;
          hoverlink.className = 'hoverlink';
          hoverlink.title = 'Permalink to this ' + itemType;
          target.appendChild(hoverlink);
        });

        cell.addEventListener('mouseleave', () => {
          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }
        });
      }
  });
  </script>

  <!-- Hoverlink styles -->

  <style>
  :root {
      --hoverlink-size: 0.9em;
  }

  .hoverlink {
      text-decoration: none;
  }

  .hoverlink::after {
      position: absolute;
      display: inline-block;
      content: "";
      width: var(--hoverlink-size);
      height: var(--hoverlink-size);
      background-size: var(--hoverlink-size) var(--hoverlink-size);
      background-image: url();
  }
  </style>

  <!-- Table body expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var showables = document.getElementsByClassName('showable');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function() {
              this.classList.toggle('show');
          });
      }

      showables = document.getElementsByClassName('showable2');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function(event) {
              this.classList.toggle('show2');
              event.stopPropagation();
          });
      }
  });
  </script>

  <!-- Table body expansion and contraction styles -->

  <style>
  .chevron {
      color: var(--link-color);
      cursor: pointer;
  }

  .chevron::before {
      /* Single Right-Pointing Angle Quotation Mark */
      content: "\00203A ";
  }

  .chevron .click::after {
      content: " Click to show/hide...";
  }

  .hide {
      display: none;
  }

  .show tr {
      display: table-row;
  }

  .show td div, .show ul, .show ol {
      display: block;
  }

  .show td span {
      display: inline;
  }

  .show2 *.hide {
      display: none;
  }

  </style>

  <!-- Global styles (that affect the entire document) -->

  <style>
  /* light mode support */
  @media (prefers-color-scheme: light) {
    :root {
      --background-color: white;
      --foreground-color: black;
      --diff-background-color: aliceblue;
      --link-color: blue;
      --parameter-color: white;
      --object-color: #ffff99;
      --command-color: #66cdaa;
      --event-color: #66cdaa;
      --argument-container-color: silver;
      --argument-object-color: pink;
      --argument-parameter-color: #ffe4e1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #4db8ff;
      --stripe-direction: 90deg;
      --stripe-stop-point-1: 1%;
      --stripe-stop-point-2: 2%;
      --stripe-color-deprecated: #eeeeee;
      --stripe-color-obsoleted: #dddddd;
      --stripe-color-deleted: #cccccc;
    }
  }

  /* dark mode support */
  @media (prefers-color-scheme: dark) {
    :root {
      --background-color: black;
      --foreground-color: white;
      --diff-background-color: #0f0700;
      --link-color: lightblue;
      --parameter-color: black;
      --object-color: #bbbb44;
      --command-color: #56bd9a;
      --event-color: #56bd9a;
      --argument-container-color: #777777;
      --argument-object-color: #dfa0ab;
      --argument-parameter-color: #bfa4a1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #3da8ef;
      --stripe-color-deprecated: #555555;
      --stripe-color-obsoleted: #444444;
      --stripe-color-deleted: #333333;
    }
    .hoverlink {
      filter: invert(1);
    }
  }

  body, table {
      background-color: var(--background-color);
      color: var(--foreground-color);
      font-family: helvetica, arial, sans-serif;
      font-size: 9pt;
  }

  h1 {
      font-size: 14pt;
  }

  h2 {
      font-size: 12pt;
  }

  h3 {
      font-size: 10pt;
  }

  a:link, a:visited {
      color: var(--link-color);
  }

  sup {
      vertical-align: super;
  }

  table {
      text-align: left;
      vertical-align: top;
  }

  td, th {
      padding: 2px;
      text-align: left;
      vertical-align: top;
  }

  /* this is intended for hoverlinks */
  td span {
      padding-right: 2px;
  }

  table.middle-width {
      width: 60%;
  }

  table.full-width {
      width: 100%;
  }

  thead th {
      background-color: #999999;
  }

  table.partial-border {
      border-left-style: hidden;
      border-right-style: hidden;
      border-collapse: collapse;
  }

  table.partial-border th,
  table.partial-border td {
      border-style: solid;
      border-width: 1px;
      border-color: lightgray;
  }

  td > div,
  td > p {
      margin-block-start: 0;
      margin-block-end: 1em;
  }

  td > div:last-of-type,
  td > p:last-of-type {
      margin-block-end: 0;
  }

  .centered {
      text-align: center;
  }

  .inserted {
      color: blue;
  }

  .removed {
      color: red;
      text-decoration: line-through;
  }

  /* XXX this is a bad name */
  .diffs {
      background-color: var(--diff-background-color);
      opacity: 0.8;
  }

  .parameter {
      background-color: var(--parameter-color);
  }

  .deprecated-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .object {
      background-color: var(--object-color);
  }

  .deprecated-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .command {
      background-color: var(--command-color);
  }

  .deprecated-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .event {
      background-color: var(--event-color);
  }

  .deprecated-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-container {
      background-color: var(--argument-container-color);
  }

  .deprecated-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-parameter {
      background-color: var(--argument-parameter-color);
  }

  .deprecated-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-object {
      background-color: var(--argument-object-color);
  }

  .deprecated-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountable-object {
      background-color: var(--mountable-object-color);
  }

  .deprecated-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountpoint-object {
      background-color: var(--mountpoint-object-color);
  }

  .deprecated-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }
  </style>

  <!-- Local styles (that affect only data model tables) -->

  <style>
  /* center column 2 (Base Type) */
  .data-type-table th:nth-child(2),
  .data-type-table td:nth-child(2) {
      text-align: center;
  }

  /* center columns 3 (Write), 5 (Object Default), 6 (Version) */
  .data-model-table th:nth-child(3),
  .data-model-table td:nth-child(3),
  .data-model-table th:nth-child(5),
  .data-model-table td:nth-child(5),
  .data-model-table th:nth-child(6),
  .data-model-table td:nth-child(6)
  {
      text-align: center;
  }

  .data-model-table th,
  .data-model-table td {
      hyphenate-character: "";
  }

  /* word wrap/break column 1 (Name) */
  .data-model-table td:first-child {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 27ch;
  }

  /* word wrap/break column 2 (Base Type) */
  .data-model-table td:nth-child(2) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 3 (Write) */
  .data-model-table td:nth-child(3) {
      min-width: 1ch;
  }

  /* word wrap/break column 5 (Object Default) */
  .data-model-table td:nth-child(5) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 6 (Version) */
  .data-model-table td:nth-child(6) {
      min-width: 6ch;
  }

  /* center column 1 (Abbreviation) */
  .profile-notation-table th:nth-child(1),
  .profile-notation-table td:nth-child(1) {
      text-align: center;
  }

  /* center column 2 (Requirement) */
  .profile-requirements-table th:nth-child(2),
  .profile-requirements-table td:nth-child(2) {
      text-align: center;
  }
  </style>
</head>
<body>
<div id="main">
<table class="full-width">
<colgroup>
<col style="width: 3.0%;"></col>
<col style="width: 22.0%;"></col>
<col style="width: 50.0%;"></col>
<col style="width: 25.0%;"></col></colgroup>
<tbody>
<tr>
<td colspan="2"><a href="https://www.broadband-forum.org"><img width="100%" alt="Broadband Forum" src="https://www.broadband-forum.org/images/logo-broadband-forum.gif"></img></a></td>
<td class="centered" rowspan="1"><p></p>

<h1 id="tr-069-device12-and-internetgatewaydevice13-root-object-definition" class="unnumbered unlisted">TR-069 Device:1.2 and InternetGatewayDevice:1.3 Root Object definition</h1>

<h1 id="tr-143-1-0-2xml" class="unnumbered unlisted"><a href="./#tr-143-1-0-2.xml">tr-143-1-0-2.xml</a></h1></td>
<td rowspan="1"></td></tr>
<tr>
<td></td>
<td><h3 id="data-model-definition" class="unnumbered unlisted">DATA MODEL DEFINITION</h3></td></tr></tbody></table>

<h1 id="license">License</h1>

<p>Copyright (c) 2008-2017, Broadband Forum</p>

<p>Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:</p>

<ol>
<li>Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.</li>
<li>Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.</li></ol>

<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS &ldquo;AS IS&rdquo; AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>

<p>The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<a href="https://www.broadband-forum.org/ipr-policy">https://www.broadband-forum.org/ipr-policy</a>.</p>

<p>Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.</p>

<h1 id="data-types">Data Types</h1>

<p>The Parameters defined in this specification make use of a
limited subset of the default SOAP data types [<a href="#R.SOAP1.1">SOAP1.1</a>]. These data
types and the named data types used by this specification
are described below.</p>

<p>Note: A Parameter that is defined to be one of the named data
types is reported as such at the beginning of the Parameter’s
description via a reference back to the associated data type
definition (e.g. <em>[MACAddress]</em>). However, such parameters
still indicate their SOAP data types.</p>

<table class="full-width partial-border data-type-table">
<thead>
<tr>
<th>Data Type</th>
<th>Base Type</th>
<th>Description</th></tr></thead>
<tbody>
<tr>
<td><span id="T.boolean">boolean</span></td>
<td>-</td>
<td>Boolean, where the allowed values are <em>0</em> or <em>1</em> (or equivalently,
<em>true</em> or <em>false</em>).</td></tr>
<tr>
<td><span id="T.dateTime">dateTime</span></td>
<td>-</td>
<td>The subset of the ISO 8601 date-time format defined by the SOAP
<em>dateTime</em> type [<a href="#R.SOAP1.1">SOAP1.1</a>].</td></tr>
<tr>
<td><span id="T.string">string</span></td>
<td>-</td>
<td>For strings, a minimum and maximum allowed length can be indicated
using the form <em>string(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum
and maximum string length in characters. If either <em>Min</em> or <em>Max</em>
are missing, this indicates no limit, and if <em>Min</em> is missing the
colon can also be omitted, as in <em>string(Max)</em>. Multiple
comma-separated ranges can be specified, in which case the string
length will be in one of the ranges.</td></tr>
<tr>
<td><span id="T.unsignedInt">unsignedInt</span></td>
<td>-</td>
<td><p>Unsigned integer in the range <em>0</em> to <em>4294967295</em>, inclusive.</p>

<p>For some <em>unsignedInt</em> types, a value range is given using the form
<em>unsignedInt(Min:Max)</em> or <em>unsigned(Min:Max step Step)</em>, where the
<em>Min</em> and <em>Max</em> values are inclusive. If either <em>Min</em> or <em>Max</em> are
missing, this indicates no limit. If <em>Step</em> is missing,
this indicates a step of <em>1</em>. Multiple comma-separated ranges can be
specified, in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.IPAddress">IPAddress</span></td>
<td><a href="#T.string">string</a>(:45)</td>
<td><p>IP address, i.e. IPv4 address (or IPv4 subnet mask) or IPv6 address.</p>

<p>All IPv4 addresses and subnet masks MUST be represented as strings in
IPv4 dotted-decimal notation. Here are some examples of valid IPv4
address textual representations:</p>

<ul>
<li>216.52.29.100</li>
<li>192.168.1.254</li></ul>

<p>All IPv6 addresses MUST be represented using any of the 3 standard
textual representations defined in [<a href="#R.RFC4291">RFC4291</a>] Sections 2.2.1,
2.2.2 and 2.2.3. Both lower-case and upper-case letters can be used, but
use of lower-case letters is RECOMMENDED. Here are some examples of valid
IPv6 address textual representations:</p>

<ul>
<li>1080:0:0:800:ba98:3210:11aa:12dd</li>
<li>1080::800:ba98:3210:11aa:12dd</li>
<li>0:0:0:0:0:0:13.1.68.3</li></ul>

<p>IPv6 addresses MUST NOT include zone identifiers. Zone identifiers are
discussed in [<a href="#R.RFC4007">Section 6/RFC4007</a>].</p>

<p>Unspecified or inapplicable addresses (or IPv4 subnet masks) MUST be
represented as empty strings unless otherwise specified by the parameter
definition.</p></td></tr></tbody></table>

<h1 id="references">References</h1>

<table>
<tbody>
<tr>
<td><a href="https://www.iana.org/assignments/uri-schemes">[<span id="R.IANA-uri-schemes">IANA-uri-schemes</span>]</a></td>
<td>IANA Uniform Resource Identifier (URI) Schemes Registry, <em>Uniform Resource Identifier (URI) Schemes</em>, IANA.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/regauth/oui/tutorials/EUI64.html">[<span id="R.IEEE_EUI64">IEEE_EUI64</span>]</a></td>
<td>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority, <em>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority</em>, IEEE, March 1997.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2616">[<span id="R.RFC2616">RFC2616</span>]</a></td>
<td>RFC 2616, <em>Hypertext Transfer Protocol - HTTP/1.1</em>, IETF, 1999.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3986">[<span id="R.RFC3986">RFC3986</span>]</a></td>
<td>RFC 3986, <em>Uniform Resource Identifier (URI): Generic Syntax</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4007">[<span id="R.RFC4007">RFC4007</span>]</a></td>
<td>RFC 4007, <em>IPv6 Scoped Address Architecture</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4122">[<span id="R.RFC4122">RFC4122</span>]</a></td>
<td>RFC 4122, <em>A Universally Unique IDentifier (UUID) URN Namespace</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4291">[<span id="R.RFC4291">RFC4291</span>]</a></td>
<td>RFC 4291, <em>IP Version 6 Addressing Architecture</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4632">[<span id="R.RFC4632">RFC4632</span>]</a></td>
<td>RFC 4632, <em>Classless Inter-domain Routing (CIDR): The Internet Address Assignment
and Aggregation Plan</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7159">[<span id="R.RFC7159">RFC7159</span>]</a></td>
<td>RFC7159, <em>The JavaScript Object Notation (JSON) Data Interchange Format</em>, IETF, March 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7230">[<span id="R.RFC7230">RFC7230</span>]</a></td>
<td>RFC 7230, <em>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7252">[<span id="R.RFC7252">RFC7252</span>]</a></td>
<td>RFC 7252, <em>The Constrained Application Protocol (CoAP)</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc8141">[<span id="R.RFC8141">RFC8141</span>]</a></td>
<td>RFC 8141, <em>Uniform Resource Names (URNs)</em>, IETF, April 2017.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc862">[<span id="R.RFC862">RFC862</span>]</a></td>
<td>RFC 862, <em>Echo Protocol</em>, IETF, 1983.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc958">[<span id="R.RFC959">RFC959</span>]</a></td>
<td>RFC 959, <em>File Transfer Protocol</em>, IETF, 1985.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/2000/NOTE-SOAP-20000508">[<span id="R.SOAP1.1">SOAP1.1</span>]</a></td>
<td>Simple Object Access Protocol (SOAP) 1.1, W3C.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-069.pdf">[<span id="R.TR-069">TR-069</span>]</a></td>
<td>TR-069 Amendment 6, <em>CPE WAN Management Protocol</em>, Broadband Forum, April 2018.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-143.pdf">[<span id="R.TR-143">TR-143</span>]</a></td>
<td>TR-143 Amendment 1 Corrigendum 1, <em>Enabling Network Throughput Performance Tests and Statistical
Monitoring</em>, Broadband Forum, August 2015.</td></tr>
<tr>
<td><a href="https://csa-iot.org/all-solutions/zigbee">[<span id="R.ZigBee2007">ZigBee2007</span>]</a></td>
<td>ZigBee 2007 Specification, <em>ZigBee 2007 Specification</em>, ZigBee Alliance, October 2007.</td></tr></tbody></table>

<h1 id="legend">Legend</h1>

<table class="middle-width partial-border">
<tbody>
<tr class="object">
<td>Object definition.</td></tr>
<tr class="parameter">
<td>Parameter definition.</td></tr></tbody></table>

<h1 id="tr-14310-data-model">TR-143:1.0 Data Model</h1>

<p>For a given implementation of this data model, the Agent MUST
indicate support for the highest version number of any object
or parameter that it supports. For example, even if the Agent
supports only a single parameter that was introduced in version
1.4, then it will indicate support for version 1.4. The version
number associated with each object and parameter is shown in
the <strong>Version</strong> column.</p>

<table class="full-width partial-border data-model-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Write</th>
<th>Description</th>
<th>Object Default</th>
<th>Version</th></tr></thead>
<tbody>
<tr class="object">
<td><span id="D.TR-143:1.Capabilities.">Capabilities.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The capabilities of the device. This is a constant read-only object, meaning that only a firmware upgrade will cause these values to be altered.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.">Capabilities.PerformanceDiagnostic.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The capabilities of the Performance Diagnostics (<em>DownloadDiagnostics</em> and <em>UploadDiagnostics</em>) for the device.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.DownloadTransports">DownloadTransports</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported <em>DownloadDiagnostics</em> transport protocols for a CPE device.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.DownloadTransports.HTTP"><em>HTTP</em></span></li>
<li><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.DownloadTransports.FTP"><em>FTP</em></span> (OPTIONAL)</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.UploadTransports">UploadTransports</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported <em>UploadDiagnostics</em> transport protocols for a CPE device.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.UploadTransports.HTTP"><em>HTTP</em></span></li>
<li><span id="D.TR-143:1.Capabilities.PerformanceDiagnostic.UploadTransports.FTP"><em>FTP</em></span> (OPTIONAL)</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.TR-143:1.DownloadDiagnostics.">DownloadDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the diagnostics configuration for a HTTP and FTP DownloadDiagnostics Test.
Files received in the DownloadDiagnostics do not require file storage on the CPE device.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td>string</td>
<td>W</td>
<td><p>Indicate the availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_TransferFailed"><em>Error_TransferFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_IncorrectSize"><em>Error_IncorrectSize</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the <em>DiagnosticsState</em> to <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.
When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic.
When the test is completed, the value of this parameter MUST be either <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></a> (if the test completed successfully), or one of the <em>Error</em> values listed above.
If the value of this parameter is anything other than <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></a>, the values of the results parameters for this test are indeterminate.
When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform message.
After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.
Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.
While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.
While the test is in progress, setting this parameter to <a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of the IP-layer interface over which the test is to be performed.
The value of this parameter MUST be either a valid interface or an empty string. An attempt to set this parameter to a different value MUST be rejected as an invalid parameter value.
If an empty string is specified, the CPE MUST use the default routing interface.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.DownloadURL">DownloadURL</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The URL, as defined in [<a href="#R.RFC3986">RFC3986</a>], for the CPE to perform the download on. This parameter MUST be in the form of a valid HTTP [<a href="#R.RFC2616">RFC2616</a>] or FTP [<a href="#R.RFC959">RFC959</a>] URL.

<ul>
<li>When using FTP transport, FTP binary transfer MUST be used.</li>
<li>When using HTTP transport, persistent connections MUST be used and pipelining MUST NOT be used.</li>
<li>When using HTTP transport the HTTP Authentication MUST NOT be used.</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.DownloadTransports">DownloadTransports</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported <em>DownloadDiagnostics</em> transport protocols for a CPE device.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.TR-143:1.DownloadDiagnostics.DownloadTransports.HTTP"><em>HTTP</em></span></li>
<li><span id="D.TR-143:1.DownloadDiagnostics.DownloadTransports.FTP"><em>FTP</em></span> (OPTIONAL)</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.DSCP">DSCP</span></td>
<td>unsignedInt(0:63)</td>
<td>W</td>
<td>The DiffServ code point for marking packets transmitted in the test.
The default value SHOULD be zero.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.EthernetPriority">EthernetPriority</span></td>
<td>unsignedInt(0:7)</td>
<td>W</td>
<td>Ethernet priority code for marking packets transmitted in the test (if applicable).
The default value SHOULD be zero.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.ROMTime">ROMTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the client sends the GET command.</li>
<li>For FTP this is the time at which the client sends the RTRV command.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.BOMTime">BOMTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Begin of transmission time in UTC, which MUST be specified to microsecond precision
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the first data packet is received.</li>
<li>For FTP this is the time at which the client receives the first data packet on the data connection.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.EOMTime">EOMTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>End of transmission in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the last data packet is received.</li>
<li>For FTP this is the time at which the client receives the last packet on the data connection.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.TestBytesReceived">TestBytesReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The test traffic received in bytes during the FTP/HTTP transaction including FTP/HTTP headers, between <a href="#D.TR-143:1.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.TR-143:1.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a>,</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.TotalBytesReceived">TotalBytesReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of bytes received on the Interface between <a href="#D.TR-143:1.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.TR-143:1.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.TCPOpenRequestTime">TCPOpenRequestTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the TCP socket open (SYN) was sent for the HTTP connection.</li>
<li>For FTP this is the time at which the TCP socket open (SYN) was sent for the data connection.
Note: Interval of 1 microsecond SHOULD be supported.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.DownloadDiagnostics.TCPOpenResponseTime">TCPOpenResponseTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Response time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the TCP ACK to the socket opening the HTTP connection was received.</li>
<li>For FTP this is the time at which the TCP ACK to the socket opening the data connection was received.
Note: Interval of 1 microsecond SHOULD be supported.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.TR-143:1.UploadDiagnostics.">UploadDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the diagnostics configuration for a HTTP or FTP UploadDiagnostics test.
Files sent by the UploadDiagnostics do not require file storage on the CPE device, and MAY be an arbitrary stream of bytes.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td>string</td>
<td>W</td>
<td><p>Indicate the availability of diagnostic data. Enumeration of:</p>

<ul>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_NoCWD"><em>Error_NoCWD</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_NoSTOR"><em>Error_NoSTOR</em></span> (READONLY)</li>
<li><span id="D.TR-143:1.UploadDiagnostics.DiagnosticsState.Error_NoTransferComplete"><em>Error_NoTransferComplete</em></span> (READONLY)
If the ACS sets the value of this parameter to <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the <em>DiagnosticsState</em> to <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.
When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic.
When the test is completed, the value of this parameter MUST be either <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></a> (if the test completed successfully), or one of the <em>Error</em> values listed above.
If the value of this parameter is anything other than <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></a>, the values of the results parameters for this test are indeterminate.
When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform message.
After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.
Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.
While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.
While the test is in progress, setting this parameter to <a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of the IP-layer interface over which the test is to be performed.
The value of this parameter MUST be either a valid interface or an empty string. An attempt to set this parameter to a different value MUST be rejected as an invalid parameter value.
If an empty string is specified, the CPE MUST use the default routing interface.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.UploadURL">UploadURL</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The URL, as defined in [<a href="#R.RFC3986">RFC3986</a>], for the CPE to Upload to. This parameter MUST be in the form of a valid HTTP [<a href="#R.RFC2616">RFC2616</a>] or FTP [<a href="#R.RFC959">RFC959</a>] URL.

<ul>
<li>When using FTP transport, FTP binary transfer MUST be used.</li>
<li>When using HTTP transport, persistent connections MUST be used and pipelining MUST NOT be used.</li>
<li>When using HTTP transport the HTTP Authentication MUST NOT be used.</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.UploadTransports">UploadTransports</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported <em>UploadDiagnostics</em> transport protocols for a CPE device.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.TR-143:1.UploadDiagnostics.UploadTransports.HTTP"><em>HTTP</em></span></li>
<li><span id="D.TR-143:1.UploadDiagnostics.UploadTransports.FTP"><em>FTP</em></span> (OPTIONAL)</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.DSCP">DSCP</span></td>
<td>unsignedInt(0:63)</td>
<td>W</td>
<td>DiffServ code point for marking packets transmitted in the test.
The default value SHOULD be zero.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.EthernetPriority">EthernetPriority</span></td>
<td>unsignedInt(0:7)</td>
<td>W</td>
<td>Ethernet priority code for marking packets transmitted in the test (if applicable).
The default value SHOULD be zero.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.TestFileLength">TestFileLength</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The size of the file (in bytes) to be uploaded to the server.
The CPE MUST insure the appropriate number of bytes are sent.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.ROMTime">ROMTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the client sends the PUT command</li>
<li>For FTP this is the time at which the STOR command is sent.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.BOMTime">BOMTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Begin of transmission time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the first data packet is sent.</li>
<li>For FTP this is the time at which the client receives the ready for transfer notification.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.EOMTime">EOMTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>End of transmission in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time when the HTTP successful response code is received.</li>
<li>For FTP this is the time when the client receives a transfer complete.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.TotalBytesSent">TotalBytesSent</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of bytes sent on the Interface between <a href="#D.TR-143:1.UploadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.TR-143:1.UploadDiagnostics.EOMTime"><em>EOMTime</em></a>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.TCPOpenRequestTime">TCPOpenRequestTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the time at which the TCP socket open (SYN) was sent for the HTTP connection.</li>
<li>For FTP this is the time at which the TCP socket open (SYN) was sent for the data connection
Note: Interval of 1 microsecond SHOULD be supported.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UploadDiagnostics.TCPOpenResponseTime">TCPOpenResponseTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Response time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456</p>

<ul>
<li>For HTTP this is the Time at which the TCP ACK to the socket opening the HTTP connection was received.</li>
<li>For FTP this is the Time at which the TCP ACK to the socket opening the Data connection was received.
Note: Interval of 1 microsecond SHOULD be supported.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.TR-143:1.UDPEchoConfig.">UDPEchoConfig.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the CPE to be configured to perform the UDP Echo Service defined in [<a href="#R.RFC862">RFC862</a>] and UDP Echo Plus Service defined in [<a href="#R.TR-143">Appendix A.1/TR-143</a>].</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>MUST be enabled to receive UDP echo. When enabled from a disabled state all related timestamps, statistics and UDP Echo Plus counters are cleared.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of IP-layer interface over which the CPE MUST listen and receive UDP echo requests on.
The value of this parameter MUST be either a valid interface or an empty string. An attempt to set this parameter to a different value MUST be rejected as an invalid parameter value.
If an empty string is specified, the CPE MUST listen and receive UDP echo requests on all interfaces.
Note: Interfaces behind a NAT MAY require port forwarding rules configured in the Gateway to enable receiving the UDP packets.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.SourceIPAddress">SourceIPAddress</span></td>
<td><span title="IPAddress">string(:45)</span></td>
<td>W</td>
<td>[<a href="#T.IPAddress">IPAddress</a>] The Source IP address of the UDP echo packet. The CPE MUST only respond to a UDP echo from this source IP address.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.UDPPort">UDPPort</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The UDP port on which the UDP server MUST listen and respond to UDP echo requests.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.EchoPlusEnabled">EchoPlusEnabled</span></td>
<td>boolean</td>
<td>W</td>
<td>If <em>true</em> the CPE will perform necessary packet processing for UDP Echo Plus packets.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.EchoPlusSupported">EchoPlusSupported</span></td>
<td>boolean</td>
<td>R</td>
<td><em>true</em> if UDP Echo Plus is supported.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.PacketsReceived">PacketsReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>Incremented upon each valid UDP echo packet received.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.PacketsResponded">PacketsResponded</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>Incremented for each UDP echo response sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.BytesReceived">BytesReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The number of UDP received bytes including payload and UDP header after the UDPEchoConfig is enabled.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.BytesResponded">BytesResponded</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The number of UDP responded bytes, including payload and UDP header sent after the UDPEchoConfig is enabled.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.TimeFirstPacketReceived">TimeFirstPacketReceived</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456,
The time that the server receives the first UDP echo packet after the UDPEchoConfig is enabled.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.TR-143:1.UDPEchoConfig.TimeLastPacketReceived">TimeLastPacketReceived</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456
The time that the server receives the most recent UDP echo packet.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr></tbody></table>

<h2 id="inform-and-notification-requirements">Inform and Notification Requirements</h2>

<h3 id="parameters-for-which-active-notification-may-be-denied">Parameters for which Active Notification MAY be Denied</h3>

<table class="middle-width partial-border">
<thead>
<tr>
<th>Parameter</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.TR-143:1.DownloadDiagnostics.">DownloadDiagnostics.</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState">DiagnosticsState</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.ROMTime">ROMTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.BOMTime">BOMTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.EOMTime">EOMTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TestBytesReceived">TestBytesReceived</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TotalBytesReceived">TotalBytesReceived</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TCPOpenRequestTime">TCPOpenRequestTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TCPOpenResponseTime">TCPOpenResponseTime</a></td></tr>
<tr class="object">
<td><a href="#D.TR-143:1.UploadDiagnostics.">UploadDiagnostics.</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState">DiagnosticsState</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.ROMTime">ROMTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.BOMTime">BOMTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.EOMTime">EOMTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TotalBytesSent">TotalBytesSent</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TCPOpenRequestTime">TCPOpenRequestTime</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TCPOpenResponseTime">TCPOpenResponseTime</a></td></tr>
<tr class="object">
<td><a href="#D.TR-143:1.UDPEchoConfig.">UDPEchoConfig.</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.PacketsReceived">PacketsReceived</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.PacketsResponded">PacketsResponded</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.BytesReceived">BytesReceived</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.BytesResponded">BytesResponded</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.TimeFirstPacketReceived">TimeFirstPacketReceived</a></td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.TimeLastPacketReceived">TimeLastPacketReceived</a></td></tr></tbody></table>

<h2 id="profile-definitions">Profile Definitions</h2>

<h3 id="notation">Notation</h3>

<p>The following abbreviations are used to specify profile requirements:</p>

<table class="middle-width partial-border profile-notation-table">
<thead>
<tr>
<th>Abbreviation</th>
<th>Description</th></tr></thead>
<tbody>
<tr>
<td>R</td>
<td>Read support is REQUIRED.</td></tr>
<tr>
<td>W</td>
<td>Both Read and Write support is REQUIRED. This MUST NOT be specified for a parameter that is defined as read-only.</td></tr>
<tr>
<td>P</td>
<td>The object is REQUIRED to be present.</td></tr>
<tr>
<td>C</td>
<td>Creation and deletion of instances of the object is REQUIRED.</td></tr>
<tr>
<td>A</td>
<td>Creation of instances of the object is REQUIRED, but deletion is not REQUIRED.</td></tr>
<tr>
<td>D</td>
<td>Deletion of instances of the object is REQUIRED, but creation is not REQUIRED.</td></tr></tbody></table>

<h3 id="P.TR-143:1.Download:1">Download:1 Profile</h3>

<p>This table defines the <em>Download:1</em> profile for the <em>TR-143:1</em> data model.
The minimum REQUIRED version for this profile is TR-143:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="deleted-object">
<td><a href="#D.TR-143:1.Capabilities.PerformanceDiagnostic.">Capabilities.PerformanceDiagnostic.</a></td>
<td>P<sup>1</sup></td></tr>
<tr class="deleted-parameter">
<td><a href="#D.TR-143:1.Capabilities.PerformanceDiagnostic.DownloadTransports">DownloadTransports</a></td>
<td>R<sup>2</sup></td></tr>
<tr class="object">
<td><a href="#D.TR-143:1.DownloadDiagnostics.">DownloadDiagnostics.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.DiagnosticsState">DiagnosticsState</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.Interface">Interface</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.DownloadURL">DownloadURL</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.DSCP">DSCP</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.EthernetPriority">EthernetPriority</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.ROMTime">ROMTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.BOMTime">BOMTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.EOMTime">EOMTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TestBytesReceived">TestBytesReceived</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TotalBytesReceived">TotalBytesReceived</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.DownloadTransports">DownloadTransports</a></td>
<td>R</td></tr></tbody></table>

<p><sup>1</sup> This object is DELETED.<br/><sup>2</sup> This parameter is DELETED.</p>

<h3 id="P.TR-143:1.DownloadTCP:1">DownloadTCP:1 Profile</h3>

<p>This table defines the <em>DownloadTCP:1</em> profile for the <em>TR-143:1</em> data model.
The minimum REQUIRED version for this profile is TR-143:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.TR-143:1.DownloadDiagnostics.">DownloadDiagnostics.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TCPOpenRequestTime">TCPOpenRequestTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.DownloadDiagnostics.TCPOpenResponseTime">TCPOpenResponseTime</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.TR-143:1.Upload:1">Upload:1 Profile</h3>

<p>This table defines the <em>Upload:1</em> profile for the <em>TR-143:1</em> data model.
The minimum REQUIRED version for this profile is TR-143:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="deleted-object">
<td><a href="#D.TR-143:1.Capabilities.PerformanceDiagnostic.">Capabilities.PerformanceDiagnostic.</a></td>
<td>P<sup>1</sup></td></tr>
<tr class="deleted-parameter">
<td><a href="#D.TR-143:1.Capabilities.PerformanceDiagnostic.UploadTransports">UploadTransports</a></td>
<td>R<sup>2</sup></td></tr>
<tr class="object">
<td><a href="#D.TR-143:1.UploadDiagnostics.">UploadDiagnostics.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.DiagnosticsState">DiagnosticsState</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.Interface">Interface</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.UploadURL">UploadURL</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.DSCP">DSCP</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.EthernetPriority">EthernetPriority</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.ROMTime">ROMTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.BOMTime">BOMTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.EOMTime">EOMTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TestFileLength">TestFileLength</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TotalBytesSent">TotalBytesSent</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.UploadTransports">UploadTransports</a></td>
<td>R</td></tr></tbody></table>

<p><sup>1</sup> This object is DELETED.<br/><sup>2</sup> This parameter is DELETED.</p>

<h3 id="P.TR-143:1.UploadTCP:1">UploadTCP:1 Profile</h3>

<p>This table defines the <em>UploadTCP:1</em> profile for the <em>TR-143:1</em> data model.
The minimum REQUIRED version for this profile is TR-143:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.TR-143:1.UploadDiagnostics.">UploadDiagnostics.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TCPOpenRequestTime">TCPOpenRequestTime</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UploadDiagnostics.TCPOpenResponseTime">TCPOpenResponseTime</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.TR-143:1.UDPEcho:1">UDPEcho:1 Profile</h3>

<p>This table defines the <em>UDPEcho:1</em> profile for the <em>TR-143:1</em> data model.
The minimum REQUIRED version for this profile is TR-143:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.TR-143:1.UDPEchoConfig.">UDPEchoConfig.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.Interface">Interface</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.SourceIPAddress">SourceIPAddress</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.UDPPort">UDPPort</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.PacketsReceived">PacketsReceived</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.PacketsResponded">PacketsResponded</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.BytesReceived">BytesReceived</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.BytesResponded">BytesResponded</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.TimeFirstPacketReceived">TimeFirstPacketReceived</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.TimeLastPacketReceived">TimeLastPacketReceived</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.EchoPlusSupported">EchoPlusSupported</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.TR-143:1.UDPEchoPlus:1">UDPEchoPlus:1 Profile</h3>

<p>This table defines the <em>UDPEchoPlus:1</em> profile for the <em>TR-143:1</em> data model.
The minimum REQUIRED version for this profile is TR-143:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.TR-143:1.UDPEchoConfig.">UDPEchoConfig.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.TR-143:1.UDPEchoConfig.EchoPlusEnabled">EchoPlusEnabled</a></td>
<td>W</td></tr></tbody></table>

<hr/>

<p>Generated by <a href="https://www.broadband-forum.org">Broadband Forum</a> <a href="https://pypi.org/project/bbfreport">bbfreport</a> v2.2.0 (2024-07-23 version) on 2024-07-23 at 11:06:29 UTC.<br/>report.py –filter model=None –output <stdout> –transform automodel –format markdown tr-143-1-0-2.xml</p></div>

<div id="TOC"><h1 id="table-of-contents">Table of Contents</h1>

<ul class="collapsed expanded">
<li><a href="#data-types">Data Types</a></li>
<li><a href="#references">References</a></li>
<li><a href="#legend">Legend</a></li>
<li><span class="collapsible expandable"><a href="#tr-14310-data-model">TR-143:1.0 Data Model</a></span>

<ul class="collapsed expanded">
<li><span class="collapsible expandable"><a href="#D.TR-143:1.Capabilities.">Capabilities.</a></span>

<ul class="collapsed expanded ordered">
<li><a href="#D.TR-143:1.Capabilities.PerformanceDiagnostic.">PerformanceDiagnostic.</a></li></ul></li>
<li><span class="collapsible"><a href="#D.TR-143:1.DownloadDiagnostics.">DownloadDiagnostics.</a></span></li>
<li><span class="collapsible"><a href="#D.TR-143:1.UploadDiagnostics.">UploadDiagnostics.</a></span></li>
<li><span class="collapsible"><a href="#D.TR-143:1.UDPEchoConfig.">UDPEchoConfig.</a></span></li>
<li><span class="expandable"><a href="#inform-and-notification-requirements">Inform and Notification Requirements</a></span>

<ul class="collapsed">
<li><a href="#parameters-for-which-active-notification-may-be-denied">Parameters for which Active Notification MAY be Denied</a></li></ul></li>
<li><span class="expandable"><a href="#profile-definitions">Profile Definitions</a></span>

<ul class="collapsed ordered">
<li><a href="#notation">Notation</a></li>
<li><a href="#P.TR-143:1.Download:1">Download:1 Profile</a></li>
<li><a href="#P.TR-143:1.DownloadTCP:1">DownloadTCP:1 Profile</a></li>
<li><a href="#P.TR-143:1.Upload:1">Upload:1 Profile</a></li>
<li><a href="#P.TR-143:1.UploadTCP:1">UploadTCP:1 Profile</a></li>
<li><a href="#P.TR-143:1.UDPEcho:1">UDPEcho:1 Profile</a></li>
<li><a href="#P.TR-143:1.UDPEchoPlus:1">UDPEchoPlus:1 Profile</a></li></ul></li></ul></li></ul></div>
</body>
</html>
